home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / midi / midit12c.lha / midit.doc < prev   
Text File  |  1995-09-06  |  17KB  |  451 lines

  1. ****************************************************************
  2. *                                                              *
  3. *               MID-It! - MMDx to MID converter                *
  4. *                                                              *
  5. *               By Mario Bianchi - Version 1.2c                *
  6. *                      Date: 6 Sep 1995                        *
  7. *                                                              *
  8. ****************************************************************
  9.  
  10.  
  11.     INTRODUCTION
  12.     ------------
  13.  
  14. MID-It! is an OctaMED to MID music module converter.
  15.  
  16. It was made due to a personal need: I use OctaMED for making
  17. music at home, and sometimes I have to go to a music studio for
  18. giving my work a more professional touch.
  19.  
  20. Well, in short I was very tired of carrying my Amiga environment
  21. to the recording studios simply because the studio too had a
  22. computer (always Atari or Mac, sigh!!!), but it was never able
  23. to import OctaMED modules.
  24.  
  25. So I spent my spare time writing MID-It!.
  26. It allows you to load an OctaMED music module (MMD0 or MMD1) and
  27. get it converted in a few seconds to the universal MIDI file
  28. format 1!
  29.  
  30. I won't stay here naming all the software products that can deal
  31. with MIDI file format, just believe me when I say but they are
  32. really many, on any computer platform (never heard of Cubase,
  33. Notator, KCS Doctor T, and so on)?
  34.  
  35. I also know that the brand new version of OctaMED (V6) is
  36. capable of loading and saving MIDI files too, but can only
  37. output format 0 MIDI files, while MID-It! happily saves format 1
  38. files, though as yet it does not support MMD2 modules.
  39.  
  40.  
  41.     RESTRICTIONS AND REQUIREMENTS
  42.     -----------------------------
  43.  
  44. The current version has some limitations:
  45.  
  46.  - Modules must be MMD0 or MMD1 type; these two module formats
  47.    can be produced by all versions of OctaMED, and it seems to me
  48.    that MED newer versions, too, have the ability to save using
  49.    MMD0 format.
  50.    If you use OctaMED 5+, you can save your module using MMD0
  51.    or MMD1 format, but you must be sure that your module does
  52.    not use any of the extra features offered by MMD2 format
  53.    (refer to OctaMED documentation), otherwise your music could
  54.    loose some information if you save it using MMD0-1.
  55.  
  56.  - Modules must not contain any Amiga instruments (only MIDI
  57.    stuff is allowed!)
  58.  
  59.  - Modules must contain supplementary info - instrument names
  60.    and similar things, so be sure to save them using the right
  61.    save settings from MED/OctaMED before submitting your music
  62.    to MID-It!.
  63.  
  64.  - Only the first song of a multimodule will be converted.
  65.  
  66. MID-It! works with any kickstart version from 1.1 to 3.1
  67. - though I couldn't test it with all of them -
  68. but needs medplayer.library 2+ in your LIBS: drawer.
  69.  
  70. If you plan to convert MMD1 modules, version 3+ is needed.
  71.  
  72. Version 5 should be found on the Octamed developer's disk
  73. located on Aminet (file octamedv4_dev.lha in directory mus/edit,
  74. where you will also find a PD version of OctaMED.
  75.  
  76. Before using the library, though, read carefully the license and
  77. distribution files included!
  78.  
  79.  
  80.     USAGE
  81.     -----
  82.  
  83. MID-It! is only a CLI command, but it can be better handled by a
  84. good file manager like Directory Opus and Disk Master.
  85.  
  86. I'll add a small user interface if the program users - well
  87. enough of them :-) - ask me to.
  88.  
  89. Usage: midit <options> <input file> <output file>
  90.  
  91. If <output file> is not specified, it will be <input file>,
  92. modified as follows:
  93.  
  94.     - any leading "mod." or "med." is cut
  95.     - any trailing ".mod" or ".med" is cut
  96.     - extension ".MID" is appended to the filename
  97.  
  98. You can also specify only a path destination without filename,
  99. Valid examples:
  100.  
  101.     midit -b -r ram:module
  102.     midit -b -r -e -q ram:module ram:convmodule
  103.     midit -breq ram:module ram:convmodule    (same as previous)
  104.     midit -r ram:med.#? RAM:sound/
  105.  
  106. Please note the slash at the end of the last example: it must
  107. ALWAYS be present if you specify a destination subdirectory
  108. without destination filename, otherwise no output file will be
  109. produced.
  110.  
  111. AmigaDOS wildcards "#?" can be used in the input filename to
  112. convert several modules with a single command line, and a
  113. special option is present to activate Unix and MS-DOS "*?"
  114. wildcards, though excluding the AmigaDOS ones.
  115.  
  116. The output file is in all cases a MIDI file format 1, but its
  117. contents can be different, according to conversion type and
  118. option selected.
  119.  
  120.  
  121.     CONVERSION OPTIONS
  122.     ------------------
  123.  
  124. Three types of conversion can be performed, depending on the
  125. options specified.
  126.  
  127. Whatever conversion is used, the first track of the output MIDI
  128. file has the name of the song and contains only tempo changes,
  129. system exclusive messages, and various text events, if any.
  130.  
  131. The default conversion is the SMART one:
  132. it creates a file with one track for each instrument used in
  133. OctaMED plus a track (the first one), that has the name of the
  134. song.
  135. If you don't specify any conversion option, this is the one that
  136. will be performed.
  137.  
  138. The second conversion type is DIRECT (option -d):
  139. it builds a track for each OctaMED block track (this version
  140. supportes up to 32 tracks per block, but in future this number
  141. will surely grow up to 64).
  142. Actually, the real MMD1 format was born for supporting up to
  143. 16 tracks per block, but newer releases of OctaMED allow the use
  144. of MMD1 for song containing blocks having ANY number of tracks
  145. from 1 to 64.
  146. Be aware though that most module players around could work right
  147. only with older MMD1 modules, that have only 4-8-12-16 tracks
  148. per block, though MID-It does not have this limitation.
  149.  
  150. The direct conversion generates a file in which every note is
  151. played following exactly the same order (note by note, command
  152. by command) as OctaMED does.
  153.  
  154. The third and last conversion is the CHANNEL one (option -c);
  155. it features one track for each MIDI channel; that is, if you use
  156. in a module more OctaMED instruments that share the same MIDI
  157. channel, they will be inserted in the same MIDI file track.
  158.  
  159. Smart conversion is better (I think is is more clever to have
  160. each instrument data in a separate track) but notes will be
  161. played in a different order than on OctaMED.
  162.  
  163. This, especially when you are working near the maximum
  164. poliphonic power of your MIDI machines, can make substantial
  165. differences when listening to the output MIDI file.
  166.  
  167. Of course, should this happen, you can change the arrangement of
  168. tracks to change note playing order.
  169. You should do it easily using a MIDI sequencer (my hint is: put
  170. first the rhythm instrument tracks).
  171.  
  172.  
  173.     MISC OPTIONS
  174.     ------------
  175.  
  176. Option -n can be used if you want that the MID file produced
  177. uses MIDI Note Off messages to turn off a note (OctaMED and
  178. Mid-It! default use instead Note On messages with 0 velocity).
  179.  
  180. Note Off messages have a fixed velocity of 127 (maximum value).
  181. If you use this option together with running status (see below)
  182. the file obtained will be longer than the 'only Note On' running
  183. status one.
  184. If you don't specify running status, file length is the same in
  185. either Note On or Off formats.
  186.  
  187. Option -p suppresses the conversion progress indicator.
  188.  
  189. Option -r produces a .MID file containing running status data,
  190. which is a simple method for compressing MIDI data.  A file
  191. using this feature is, in general, much shorter than the
  192. uncompressed one, but some sequencers (especially the very old
  193. ones) could get confused (just try it on your configuration).
  194.  
  195. Option -t causes the converter to shut all notes when the module
  196. ends (this way it can be played in loop without notes hanging
  197. across).
  198.  
  199. Option -b is valid for MMD1 modules only: this switch activates
  200. block name retain: block (or pattern, as you wish) name is
  201. introduced as a text event in the MID file just at the moment it
  202. starts to be played.
  203.  
  204. Option -e introduces an empty four beat bar before the real
  205. module data begin. This is useful if you want to insert your own
  206. MIDI setup messages before sound starts.
  207.  
  208. Option -u enables Unix/MS-DOS wildcards (*?) instead of the
  209. AmigaDOS ones.  This is for who is used to such systems or for
  210. converting a module which name contains the character # (the
  211. symbol ? is a wildcard anyway).
  212.  
  213. Option -q enables quiet mode, suppressing any warning that
  214. can be produced.
  215. BE CAREFUL: if you suppress warnings you make it at your own
  216. risk, because the conversion could be faulty and you could not
  217. be aware of it; you'd better be sure that your module is 'solid'
  218. before using this switch.
  219.  
  220.  
  221.     WATCH OUTS, WARNINGS AND HINTS
  222.     ------------------------------
  223.  
  224. I am putting all efforts to make the program bug free, but there
  225. are many features involved and particular conditions that can
  226. elude beta testing.  So you too can participate to make the
  227. project more and more solid and functional (and you are invited
  228. to do so).
  229.  
  230. MID-It is undergoing through continuous development.
  231. New features are implemented almost each day at this time,
  232. obeying at beta tester and user reports and ideas.
  233.  
  234. All the OctaMED commands and features that can be fit in a MIDI
  235. module are implemented, but not all situations could be actually
  236. tested (I am just a man...).
  237.  
  238. You will find below (in program history) the list of last things
  239. added, so be aware that these features are the less tested.
  240.  
  241. If you use Amiga samples instead (together with MIDI or alone)
  242. the module won't be converted - in current version at least.
  243.  
  244. There is a little workaround though: if you assign from OctaMED
  245. a MIDI channel to every non MIDI instrument (thus promoting it
  246. to MIDI), the module will be converted.
  247. Simply, don't expect a perfect conversion: notes will have to be
  248. transposed some octaves above and effects like pitchbend will
  249. sound awful if you try to play the module through a MIDI device.
  250. There is too much difference between Amiga and common MIDI sound
  251. hardware to map in a simple way sound handling from one to
  252. other.  At least, with little work, you can get a MIDI file
  253. containing all note events of your non MIDI instruments too. 
  254. This until a version fully supporting Amiga samples comes up, I
  255. don't know when and even if it will.
  256.  
  257. For BPM modules, one thing is worth of being explained.
  258. The slider at the right of the BPM one - I'm gonna call it
  259. "Resolution" from now on - is intended as a 'slots per beat'
  260. indication.
  261. That is, if you set resolution to 8, then 8 block lines are
  262. intended to form a metronome beat.  Keep it in mind if your
  263. converted file sounds at different speeds than the original,
  264. or if the sequencer metronome is not synchronized with song.
  265. By now, I still haven't found a way to infer the signature of an
  266. OctaMED song (how to understand that a song has a 12/8 tempo??),
  267. so that every MIDI file generated contains a 4/4 signature
  268. setting.
  269.  
  270. WARNING: if you use in your modules things such as pattern break
  271. or song position jump to leap back in the song, the converter
  272. will loop converting it forever!!!
  273. It is recommended that you prevent this nasty accident preparing
  274. your songs to be converted so that there is always an end.
  275.  
  276. ENFORCER HITS: if you have Enforcer active when converting
  277. you could notice some occasional hits.
  278. Deep investigations, together with OctaMED's author, Teijo
  279. Kinnunen, have found that medplayer.library prior to
  280. version 6 suffer from some bugs that can cause these hits,
  281. sometime even bringing to an incorrect conversion.
  282. The V6 library fixes these bugs successfully.
  283. You can check the source of the hits using segtracker
  284. together with Enforcer: if the hitting PC location is 
  285. reported in a medplayer.library hunk, this is one of the
  286. above mentioned situations. Otherwise please report them
  287. to me with as much detail as you can.
  288. I just can't do anything about it but advise you to get
  289. medplayer.library v6, as soon as the new OctaMED developer
  290. disk is out on the streets.
  291.  
  292. HINT: OctaMED 5+ has an hidden (undocumented on V5) command,
  293. 17xx, that writes directly byte xx into controller 7 (mostly
  294. used for MIDI volume control).  I don't know if older versions
  295. support it too, so, if you think that it could be useful for
  296. you, just try it!!!
  297.  
  298.  
  299.     DISTRIBUTION
  300.     ------------
  301.  
  302. This release of MID-It! is freely distributable, but only in the
  303. form of the full original archive (midit.lha).
  304. It is fully copyrighted by the author (Mario Bianchi) and you
  305. are not allowed to use it inside a commercial product nor sell
  306. it for profict without the written permission of the author.
  307. You can upload and spread the original archive wherever you
  308. wish, specifying that you are not the author.
  309.  
  310. I just ask for two more little things (don't flame me :->):
  311.  
  312.     1) If you use it frequently simply send me a postcard
  313.        from where you live, I'd really appreciate it!
  314.        This is not because I collect post cards, but instead
  315.        because I would like to know how many people are using
  316.        MID-It!, and what they think about it.
  317.  
  318.     2) I like feedback.
  319.        Please report me of every trouble, information, opinion
  320.        or enhancement you'd like to see or say about this
  321.        program.
  322.        I would also be glad if you could send me a short
  323.        description of your Amiga musical activities and
  324.        your usage - if any - of MID-It!
  325.  
  326.  
  327.     FUTURE PLANS
  328.     ------------
  329.  
  330. As you can see, there is still work to be done, but I am ready
  331. to do what I can to get it useful for as many people as I can.
  332. If people ask for a feature they'd like to find in a new
  333. release, then it is more likely that I implement it if I know
  334. that more people need it.
  335.  
  336. Just a few points that are floating in my mind:
  337.  
  338.     - Please don't ask to add complete Amiga samples support -
  339.       or ask it all together, so that I can't say no.
  340.  
  341.       Sure, it would be a great result, but I think I can't get
  342.       it all by myself in a short time (and I think it's better
  343.       that people reach the Amiga-MIDI world).
  344.       Besides that, consider that most internal audio commands,
  345.       like pitchbend, are really difficult to convert to MIDI,
  346.       because they depend on many factors outside the module
  347.       itself (MIDI device used, voice settings and so on).
  348.  
  349.     - One of the very next steps is let MID-It! support MMD2
  350.       module format too.
  351.  
  352.     - I wonder if multisong module support could be useful to
  353.       anyone...
  354.  
  355.     - Powerpacker, XPK and lha support (like OctaMED I hope).
  356.  
  357. I hope the development of this converter will closely follow
  358. OctaMED's enhancements - or maybe OctaMED itself will be
  359. enhanced in such a way to make MID-It! useless - who knows...
  360. But this is up to you too: the success and diffusion of a
  361. product depends very much on people supporting.
  362.  
  363.  
  364.     THANX TO...
  365.     -----------
  366.  
  367.     - Scott Watson, Michael Whitten and JF Giorgi for being
  368.       real friends and professional beta testers
  369.  
  370.     - Commodore for making Amiga
  371.  
  372.     - Teijo Kinnunen for writing OctaMED
  373.  
  374.     - The man who invented music
  375.  
  376.  
  377.     REACHING THE AUTHOR
  378.     -------------------
  379.  
  380.     You can contact me via email or normal mail.
  381.     Addresses are
  382.  
  383.     Mario Bianchi        email: biancm@ghost.sm.dsi.unimi.it
  384.     Via Bergamini 17
  385.     20122 Milano ITALY
  386.  
  387.     Email address is at University, so I can't guarantee ready
  388.     (daily) answering.
  389.  
  390.     Bye and *** SHARE AND ENJOY AMIGA AND MUSIC ***
  391.  
  392.  
  393.     PROGRAM HISTORY:
  394.  
  395.      4 March 1995 - project starts
  396.  
  397.      4 April 1995 - beta version 1.0 is ready.
  398.                     Only BPM, pure MIDI, no instrument data
  399.                     modules.
  400.                     I've already converted thirty modules,
  401.                     only getting polyphony problems with my
  402.                     MIDI keyboard.
  403.  
  404.      6 April 1995 - Real (mailed) beta testing begins.
  405.  
  406.     23 April 1995 - Version 1.0 does little, but does it
  407.                     well. Beta testers ask for MMD0 and
  408.                     ST + SPD timing compatibility.
  409.  
  410.     25 April 1995 - Version 1.1 is ready for second phase of
  411.                     beta testing.
  412.  
  413.        Changes:
  414.  
  415.        - Corrected bug when inserting program change in smart
  416.          mode - it was put in the track of the previous
  417.          instrument instead of the right one.
  418.  
  419.        - Added MMD0 comversion
  420.        - Added decimal volumes dealing
  421.        - Added ST and SPD compatibility
  422.        - Added Channel conversion type
  423.  
  424.     30 April 1995 - First release is ready (v1.1a)
  425.  
  426.     5 May 1995 - Awful bug discovered and hopefully fixed:
  427.                  various commands from FF1 to FFF caused also
  428.                  a tempo change! -> V1.1b
  429.  
  430.     7 May 1995 - Version 1.2b presents lots of new features:
  431.                  - Wildcard and filename extensions handling
  432.                  - Options -b, -e, -q, -u
  433.                  - A few (minor) bugs fixes
  434.                  - Annotation text saved as text event
  435.                  - Total playing time computed and inserted
  436.                    as text event
  437.                  - Enhanced option parser - can specify
  438.                    multiple options attached, like -qre
  439.                  - Due to wildcard support, inserted scan and
  440.                    conversion statistics
  441.  
  442.     23 May 1995 - No bug reports from beta testers -
  443.                   ready for Aminet upload!
  444.  
  445.     13 Jul 1995 - V1.2c:
  446.                   Discovered and fixed bug preventing many 
  447.                   MIDI effects from being correctly converted.
  448.                   Lifted max tracks per block to 32 because
  449.                   OctaMED 5+ can save MMD1 modules having
  450.                   blocks made of more than 16 tracks.
  451.